package framework.config;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

import Entidade.Caixa;
import Entidade.Cidade;
import Entidade.Cliente;
import Entidade.Empresa;
import Entidade.Estado;
import Entidade.Filial;
import Entidade.Fornecedor;
import Entidade.Pais;
import Entidade.Produto;
import Entidade.Servico;
import Entidade.TipoDocumento;
import Entidade.Usuario;
import Entidade.Vendedor;

public class HibernateUtil {
	private static final SessionFactory sessionFactory;
	static {
		AnnotationConfiguration cfg = new AnnotationConfiguration();

		cfg.setProperty("hibernate.dialect", ParametrosDB.CONN_DIALECT);
		cfg.setProperty("hibernate.connection.driver_class",
				ParametrosDB.CONN_DRIVER);
		cfg.setProperty("hibernate.connection.url", ParametrosDB.CONN_URL);
		cfg.setProperty("hibernate.connection.username", ParametrosDB.CONN_USER);
		cfg.setProperty("hibernate.connection.password", ParametrosDB.CONN_PASS);
		cfg.setProperty("hibernate.show_sql", "true");

		cfg.setProperty("hibernate.hbm2ddl.auto", "update");

		cfg.addAnnotatedClass(Cliente.class);
		cfg.addAnnotatedClass(Fornecedor.class);
		cfg.addAnnotatedClass(Produto.class);
		cfg.addAnnotatedClass(Usuario.class);
		cfg.addAnnotatedClass(Empresa.class);
		cfg.addAnnotatedClass(Servico.class);
		cfg.addAnnotatedClass(Vendedor.class);
		cfg.addAnnotatedClass(Filial.class);
		cfg.addAnnotatedClass(Caixa.class);
		cfg.addAnnotatedClass(TipoDocumento.class);
		cfg.addAnnotatedClass(Cidade.class);
		cfg.addAnnotatedClass(Estado.class);
		cfg.addAnnotatedClass(Pais.class);

		sessionFactory = cfg.buildSessionFactory();

	}

	public static Session getSession() {
		return sessionFactory.openSession();
	}
}